<?php	namespace Hdphp\Libs;

class App{
		public static function run(){
//		初始化
		self::init();
//		注册一个自动载入的函数	
		spl_autoload_register(array(__CLASS__,"auto"));
//		执行应用
		self::appRun();
		}
//	初始化
	private static function init(){
//		模块处理
		$m=isset($_GET['m'])? ucfirst($_GET['m']):"Home";
		define("MODULE", $m);
//		控制器处理
		$c=isset($_GET['c'])? ucfirst($_GET['c']):"Index";
		define("CONTROLLER", $c);
//		方法处理
		$a=isset($_GET['a'])? ucfirst($_GET['a']):"index";
		define("ACTION", $a);
//		加载框架配置
		$hdConfig=include "Hdphp/config.php";
		C($hdConfig);
//		加载home配置
		$userConfig=include "App/Home/Config/config.php";
		C($userConfig);
//		开启session
		session_id()|| session_start();
//		设置时区
		date_default_timezone_set(C('TIMEZONE'));
		
	}
//	注册一个自动载入函数，实例化一个未找见的类，自动触发，把类名传进来
	private static function auto($cName){
//		p($cName);die;
		if(substr($cName, -10)=="Controller"){
	//如果是控制器，$cName现在是这样的：Home\Controller\IndexController
			$path="App/".str_replace("\\", "/", $cName).".php";
			require $path;
//			p($cName);
//			p($path);
		}else{
	//如果是工具类，$cName是这样的：Hdphp\Tool\Model
			$path = str_replace("\\", "/", $cName) . ".php";
			require $path;
		}
	}
//	执行应用
	private static function appRun(){
		$m = MODULE;//模块(Home)
		$c = CONTROLLER;//控制器(Index)
		$a = ACTION;//方法(index)
		header("Content-type:text/html;charset=utf8");
//		实例化
		$path = "\\{$m}\Controller\\{$c}Controller";
//		p($path);
		$obj=new $path;
		$obj->$a();
//		p($obj);
	}
}















